<?php
/**
* Controlador que maneja las acciones del empleado
*/
class SitioprofesionalController extends Controller{
  
  	 /*
	*Accion inicio de profesional 
	*/
	   public function actionInicio(){
		$sistema=$this->AccesoInterfazProfesional();
		if(isset($sistema)){
			$this->render('inicio');
		}
		else{
			$this->redirect('loginempleado');
		}
	 }
    
	 /*
	*Accion que realizar el login del profesional
	*/
	  public function actionLoginempleado(){
		$model=new LoginEmpleadoForm;
		// si se trata de solicitud de validacion 
		if(isset($_POST['ajax']) && $_POST['ajax']==='loginempleado-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
		// recupera los datos de entrada del usuario
		if(isset($_POST['LoginEmpleadoForm']))
		{
			$model->attributes=$_POST['LoginEmpleadoForm'];
			// valida datos entrada del usuario y redirecciona a la pagina previa luego de la validacion
			if($model->validate()){
				$login=$this->IniciarInterfazProfesional($model->nro_empleado,$model->dni);
				if($login==true){
					$this->redirect('inicio');
				}
				else{
					Dialogo::mensaje('Login', 'Número Usuario o dni incorrectos');
				}
			}
		}
		   // display del formulario login 
		   $this->render('loginempleado',array('model'=>$model));
	   
	   }
   
    /**
	* accion que permite buscar pacientes
	*/
   public function actionBuscarpaciente(){
     $sistema=$this->AccesoInterfazProfesional();
	 if(isset($sistema)){
		 $model=new UsuarioForm;
		 if(isset($_POST['buscar'])){
			 if(isset($_POST['valor'])and !$_POST['valor']==''){
					  $resultado=$sistema->buscar_usuario($_POST['valor']);	
				 if($resultado==true){
					  //busca usuario, extrae los valores correspondientes y asigna los atributos de UsuarioForm
					  $usuario=$sistema->get_usuario();
					  $model->nombre=$usuario->get_nombre_usuario();
					  $model->apellido=$usuario->get_apellido_usuario();
					  $model->dni=$usuario->get_dni_usuario();
					  $model->direccion=$usuario->get_direccion_usuario();
					  $model->fechanac=$usuario->get_fecha_nacimiento();
					  $model->nro_usuario=$usuario->get_nro_usuario();
					}
				else{
					//mensaje error usuario no encontrado en la base de datos
					  Dialogo::mensaje('Busqueda', 'Paciente no encontrado');		
					}
				}
		 }
		 if(isset($_POST['limpiar'])){
			$model->unsetAttributes();
		 }
			 
		 $this->render('buscarpaciente',array('model'=>$model));
	   }
	else{
		$this->redirect('loginempleado');
	}
   }
     
    /**
	* accion que permite mostrar la Agenda del profesional
	*/
   public function actionAgenda(){
		$sistema=$this->AccesoInterfazProfesional();
		if(isset($sistema)){
			//$model=new AgendaForm;
			if(isset($_POST['buscar'])){
			  if(isset($_POST['tipo']) and !$_POST['tipo']==''){
				  $resultadobusqueda=$sistema->agenda($_POST['tipo'],$_POST['fecha']);			  
				  if($resultadobusqueda==true){
					  $model->pedidos=$sistema->get_pedidos();
				  }
				  else{
					//mensaje de error pedido no encontrado
					  Dialogo::mensaje('Busqueda', 'No se encontraron pedidos para esa fecha');
				  }
				}
			 }			
			$this->render('agenda');
		}
		else{
			$this->redirect('loginempleado');
		}
   }
   
   /**
	* Accion que permite mostrar el recorrido 
	*/
   public function actionRecorrido(){
	$sistema=$this->AccesoInterfazProfesional();
		if(isset($sistema)){
			$recorrido=$sistema->get_recorrido();
			$this->render('generar_recorrido',array('recorrido'=>$recorrido));
		}
		else{
			$this->redirect('loginempleado');
		}
   }
   
    /**
	* accion modificar datos
	*/
    public function actionModificardatos(){
		$sistema=$this->AccesoInterfazProfesional();
		if(isset($sistema)){
			$model=new ModificarEmpleadoForm;
			$datosempleado=$sistema->get_datos();
			$model->nombre=$datosempleado->get_nombre_empleado();
			$model->apellido=$datosempleado->get_apellido_empleado();
			$model->dni=$datosempleado->get_dni_empleado();
			$model->especialidad=$datosempleado->get_especialidad_empleado();
			$model->transporte=$datosempleado->get_transporte_empleado();
			$model->sucursal=$datosempleado->get_sucursal_de_trabajo();
			$model->direccion=$datosempleado->get_direccion_empleado();
			$model->nro_empleado=$datosempleado->get_nro_empleado();
			//$model->perfil=$sistema->get_imagen_perfil();
			if(isset($_POST['modificar'])){ //se presiono boton guardar cambios
					$model->attributes=$_POST['ModificarEmpleadoForm'];
					if($model->validate()){
						 $resultadomodificar=$sistema->modificar_empleado($model->nombre, $model->apellido, $model->dni, $model->especialidad,$model->transporte,$model->sucursal);
						 if($resultadomodificar==true){	
							$model->unsetAttributes();
							Dialogo::mensaje('Confirmacion', 'Datos guardados correctamente');
						}
					}
					
			}  
			$this->render('modificardatos',array('model'=>$model)); 
		}
		else{
			$this->redirect('loginempleado');
		}
   }	
   
    public function actionMisdatos(){
	     $sistema=$this->AccesoInterfazProfesional();
		 if(isset($sistema)){
			$model=new EmpleadoForm;
			$datosempleado=$sistema->get_datos();
			$model->nombre=$datosempleado->get_nombre_empleado();
			$model->apellido=$datosempleado->get_apellido_empleado();
			$model->dni=$datosempleado->get_dni_empleado();
			$model->especialidad=$datosempleado->get_especialidad_empleado();
			$model->transporte=$datosempleado->get_transporte_empleado();
			$model->sucursal=$datosempleado->get_sucursal_de_trabajo();
			$model->direccion=$datosempleado->get_direccion_empleado();
			$model->nro_empleado=$datosempleado->get_nro_empleado();
			//$model->imagen=CUploadedFile::getInstance($model,'imagen');
			//$model->imagen=$sistema->get_imagen_perfil();
			$this->render('misdatos',array('model'=>$model)); 
		}
		else{
		   $this->redirect('loginempleado');
		}
		
   }
   
   public function actionLogout()
	{
	    //Borra las variables de sesion creadas 
		Yii::app()->session->clear();
		$this->redirect(Yii::app()->homeUrl);
	}  
   
    /*
	*Filtro que permite controlar el acceso de usuarios
	*/
	public function filters()
    {
		return array(
            'accessControl',
        );
    }
	
	/*
	*Reglas de Acceso que deniegan o permiten ciertas acciones
	*/
   public function accessRules()
   {
		return array(
		array('allow', //acceso por parte de los administradores a las acciones
		'actions'=>array('inicio','buscarpaciente','agenda','modificardatos','recorrido','misdatos'),
		'roles'=>array('?'),
		),
		array('deny',//empleado no puede realizar las siguientes acciones
		'actions'=>array('inicio','buscarpaciente','agenda','modificardatos','recorrido'),
		'roles'=>array('*'),
		),
		array('allow',
		'actions'=>array('error','loginempleado'),
		'users'=>array('*'),
		),

		);
   }
}
?>